{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 1. 加载图片信息"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import os\n",
    "import cv2\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "\n",
    "suffix_list = ['.jpg', '.png', '.jpeg', '.JPG', '.PNG', '.JPEG']\n",
    "m = 0\n",
    "n = 0\n",
    "\n",
    "\n",
    "def get_images():\n",
    "    global m, n\n",
    "    images = []\n",
    "    labels = []\n",
    "\n",
    "    root = r\"lfw/lfw_funneled\"\n",
    "    for index, dir in enumerate(os.listdir(root)):\n",
    "        path = os.path.join(root, dir)\n",
    "        for filename in os.listdir(path):\n",
    "            # 如果是图片的话\n",
    "            if os.path.splitext(filename)[1] in suffix_list:\n",
    "                img = np.array(Image.open(os.path.join(path, filename)).convert('L'), 'f')\n",
    "                # (250, 250)\n",
    "                m = img.shape[0]\n",
    "                n = img.shape[1]\n",
    "                images.append(img.flatten())\n",
    "                # 放置标签信息\n",
    "                labels.append(filename)\n",
    "        # 一共5749张图像，所以只取前500个人张图片\n",
    "        if index > 100:\n",
    "            break\n",
    "\n",
    "    return images, labels\n",
    "\n",
    "\n",
    "def get_att_faces():\n",
    "    \"\"\"\n",
    "    准备数据\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    image = []\n",
    "    y = []\n",
    "    global m, n\n",
    "    data_path = r\"att_faces\"\n",
    "    root_path = os.listdir(data_path)\n",
    "    for idx, d in enumerate(root_path):\n",
    "        s_path = os.path.join(data_path, d)\n",
    "        for image_path in os.listdir(s_path):\n",
    "            # 因为是二维图,所以是二维的 [112,92]\n",
    "            img = cv2.imread(os.path.join(s_path, image_path), cv2.IMREAD_GRAYSCALE)\n",
    "            m = img.shape[0]\n",
    "            n = img.shape[1]\n",
    "            # 取前K个特征\n",
    "            # 选取特征值K个最大特征值作为Sm_i的特征值\n",
    "            image.append(np.asarray(img).flatten())\n",
    "            y.append(idx)\n",
    "    return np.asarray(image), y\n",
    "\n",
    "\n",
    "def get_test():\n",
    "    x = np.array([[-1, -2],\n",
    "                  [-1, 0],\n",
    "                  [0, 0],\n",
    "                  [2, 1],\n",
    "                  [0, 1]])\n",
    "    y = np.array([0, 0, 0, 0, 0])\n",
    "    return x, y\n",
    "\n",
    "\n",
    "def show(image):\n",
    "    plt.figure(\"1\")\n",
    "    plt.imshow(image.reshape(m, n), cmap=\"gray\")\n",
    "    plt.axis('on')  # 关掉坐标轴为 off\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "def show_image(x):\n",
    "    \"\"\"\n",
    "    展示特征图\n",
    "    :param x:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    fig, axes = plt.subplots(4, 6, figsize=(8, 4), subplot_kw={\"xticks\": [], \"yticks\": []})\n",
    "    for i, ax in enumerate(axes.flat):\n",
    "        temp = x[:, i]\n",
    "        temp = temp.reshape(m, n)\n",
    "        temp = temp.clip(0, 255)\n",
    "        ax.imshow(np.rint(temp).astype('uint8'), cmap=\"gray\")\n",
    "    # np.rint()是根据四舍五入取整,因为图片的值是整形的，矩阵求出的值是浮点型\n",
    "    plt.axis('on')  # 关掉坐标轴为 off\n",
    "    plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": true
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 2. 使用pca 进行降维，并且展示特征脸\n",
    "我们要求的是$XX^T$的特征值，$XX^T$是协方差矩阵,一个图片的$XX^T$，维数可能是$dim(XX^T)=[256*256,256*256]$，维数过大，不方便求特征向量????\n",
    "\n",
    "首先我们看 $X^TX$的特征向量  $(X^TX)v_i=\\lambda_iv_i$,为了方便计算，我们使用了$XX^T$\n",
    "\n",
    "$XX^T(Xv_i)=\\lambda_i(Xv_i)$\n",
    "\n",
    "所以要求$XX^T$的特征向量\n",
    "\n",
    "* 求出$X^TX$的特征向量$v_i$\n",
    "* $X^TX$的特征向量为$Xv_i$"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "def calculate_covariance_matrix(x, selecthr=None):\n",
    "    \"\"\"\n",
    "    因为图片计算协方差矩阵非常的大，所以我们采取 另一种写法得到矩阵的\n",
    "    :param selecthr: 阈值,选取矩阵的多少特征\n",
    "    :param x:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    # 计算X^TX的特征向量和特征值\n",
    "    A = x.T.dot(x)\n",
    "    eigen_values, eigen_vectors = np.linalg.eig(A)\n",
    "    # 对特征向量进行排序,选择前70个特征先\n",
    "    idx = eigen_values.argsort()[::-1]\n",
    "\n",
    "    if selecthr is not None:\n",
    "        \"\"\"\n",
    "        不添加阈值，就是选取100%的特征\n",
    "        \"\"\"\n",
    "        # 选取selecthr%的特征作为向量\n",
    "        for i in range(x.shape[1]):\n",
    "            if (eigen_values[idx[:i]] / eigen_values.sum()).sum() >= selecthr:\n",
    "                idx = idx[:i]\n",
    "                break\n",
    "\n",
    "    w = eigen_vectors[:, idx]\n",
    "    return np.dot(x, w)\n",
    "\n",
    "\n",
    "def train(x, y):\n",
    "    \"\"\"\n",
    "    训练加载好的数据\n",
    "    :param x:\n",
    "    :param y:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    global mean_x\n",
    "    x = np.asarray(x)\n",
    "    x = x.T\n",
    "    y = np.asarray(y)\n",
    "    # 计算所有图片的均值\n",
    "    mean_x = x.mean(axis=1).reshape(-1, 1)\n",
    "    # 得到中心化后的图片信息\n",
    "    diffTrain = x - mean_x\n",
    "    covVects = calculate_covariance_matrix(diffTrain, selecthr=0.9)\n",
    "    # 展示前24个特征脸\n",
    "    show_image(covVects[:, :24])\n",
    "    # 均值图像, 协方差矩阵的特征向量, diffTrain是偏差矩阵\n",
    "    return mean_x, covVects, diffTrain\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 3. 对人脸进行测试和训练"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 576x288 with 24 Axes>",
      "image/png": "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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集的维度 (10304, 320)\n",
      "测试集的维度 (10304, 80)\n",
      "协方差维度 (10304, 99)\n",
      "训练的w_train (99, 320)\n",
      "测试的w_predict (99, 80)\n",
      "预测正确，图片为第23类\n",
      "预测正确，图片为第4类\n",
      "预测正确，图片为第30类\n",
      "预测正确，图片为第15类\n",
      "预测正确，图片为第34类\n",
      "预测正确，图片为第30类\n",
      "预测正确，图片为第5类\n",
      "预测错误，预测为第17类,因为是第28类\n",
      "预测正确，图片为第37类\n",
      "预测错误，预测为第35类,因为是第9类\n",
      "预测正确，图片为第17类\n",
      "预测正确，图片为第21类\n",
      "预测正确，图片为第21类\n",
      "预测正确，图片为第3类\n",
      "预测正确，图片为第18类\n",
      "预测正确，图片为第34类\n",
      "预测正确，图片为第19类\n",
      "预测正确，图片为第16类\n",
      "预测正确，图片为第4类\n",
      "预测正确，图片为第0类\n",
      "预测正确，图片为第19类\n",
      "预测正确，图片为第28类\n",
      "预测正确，图片为第7类\n",
      "预测正确，图片为第17类\n",
      "预测正确，图片为第1类\n",
      "预测正确，图片为第4类\n",
      "预测错误，预测为第38类,因为是第1类\n",
      "预测正确，图片为第23类\n",
      "预测正确，图片为第24类\n",
      "预测错误，预测为第21类,因为是第32类\n",
      "预测正确，图片为第17类\n",
      "预测正确，图片为第10类\n",
      "预测错误，预测为第6类,因为是第28类\n",
      "预测正确，图片为第19类\n",
      "预测正确，图片为第34类\n",
      "预测正确，图片为第26类\n",
      "预测正确，图片为第33类\n",
      "预测正确，图片为第33类\n",
      "预测正确，图片为第7类\n",
      "预测正确，图片为第29类\n",
      "预测正确，图片为第23类\n",
      "预测正确，图片为第29类\n",
      "预测正确，图片为第26类\n",
      "预测正确，图片为第15类\n",
      "预测正确，图片为第25类\n",
      "预测正确，图片为第3类\n",
      "预测正确，图片为第35类\n",
      "预测正确，图片为第24类\n",
      "预测正确，图片为第39类\n",
      "预测正确，图片为第24类\n",
      "预测正确，图片为第2类\n",
      "预测正确，图片为第10类\n",
      "预测正确，图片为第27类\n",
      "预测正确，图片为第23类\n",
      "预测错误，预测为第6类,因为是第28类\n",
      "预测正确，图片为第2类\n",
      "预测正确，图片为第1类\n",
      "预测正确，图片为第30类\n",
      "预测正确，图片为第19类\n",
      "预测正确，图片为第8类\n",
      "预测正确，图片为第3类\n",
      "预测正确，图片为第2类\n",
      "预测正确，图片为第5类\n",
      "预测正确，图片为第22类\n",
      "预测正确，图片为第39类\n",
      "预测正确，图片为第27类\n",
      "预测正确，图片为第12类\n",
      "预测正确，图片为第21类\n",
      "预测正确，图片为第10类\n",
      "预测正确，图片为第15类\n",
      "预测正确，图片为第7类\n",
      "预测正确，图片为第26类\n",
      "预测正确，图片为第23类\n",
      "预测正确，图片为第5类\n",
      "预测正确，图片为第24类\n",
      "预测正确，图片为第17类\n",
      "预测正确，图片为第20类\n",
      "预测正确，图片为第32类\n",
      "预测正确，图片为第11类\n",
      "预测错误，预测为第13类,因为是第32类\n",
      "准确率为91.25%--[73/80]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "def test(X_train, X_test, y_train, y_test, mean_x, covVects, ):\n",
    "    \"\"\"\n",
    "    进行测试\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    X_train = X_train.T\n",
    "    X_test = X_test.T\n",
    "    print(\"训练集的维度\", X_train.shape)\n",
    "    print(\"测试集的维度\", X_test.shape)\n",
    "    print(\"协方差维度\", covVects.shape)\n",
    "\n",
    "    w_train = covVects.T.dot(X_train - mean_x)\n",
    "    print(\"训练的w_train\", w_train.shape)\n",
    "\n",
    "    w_predict = covVects.T.dot(X_test - mean_x)\n",
    "    print(\"测试的w_predict\", w_predict.shape)\n",
    "\n",
    "    acc = 0\n",
    "    y_predict = []\n",
    "    for idx, predict_image in enumerate(w_predict.T):\n",
    "        temp = []\n",
    "        for train_image in w_train.T:\n",
    "            temp.append(np.linalg.norm(predict_image - train_image))\n",
    "        index = y_train[np.argmin(temp)]\n",
    "\n",
    "        if index == y_test[idx]:\n",
    "            print(\"预测正确，图片为第{}类\".format(index))\n",
    "            acc += 1\n",
    "        else:\n",
    "            print(\"预测错误，预测为第{}类,因为是第{}类\".format(index, y_test[idx]))\n",
    "        y_predict.append(index)\n",
    "    print(\"准确率为{}%--[{}/{}]\".format(acc / len(y_predict) * 100, acc, len(y_predict)))\n",
    "\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['simHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# images, labels = get_test()\n",
    "# images, labels = get_images()\n",
    "X, y = get_att_faces()\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)\n",
    "\n",
    "mean_x, covVects, diffTrain = train(X_train, y_train)\n",
    "\n",
    "test(X_train, X_test, y_train, y_test, mean_x, covVects)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}